Printing Device and Method

ABSTRACT

Example systems and related methods may relate to processing and printing print data in the case of an error. Namely, a printing device may include a communication interface and a controller. The controller includes a processor configured to execute instructions. The instructions include receiving multi-page print data in a first file format via a communication interface. The instructions also include when an error condition is determined during print data processing, responsively transmitting an error message via the communication interface and storing an error page location. The instructions further include receiving the print data in a second file format and determining a remainder portion and a discard portion of the print data in the second file format based on the error page location. The instructions further include processing the remainder portion of the print data in the second file format.

RELATED APPLICATIONS

This application is a divisional of and claims priority to U.S. patentapplication Ser. No. 14/571,361, the entirety of which is incorporatedby reference herein.

BACKGROUND

Printing devices have increased in number and geographic footprintthroughout the world and have become increasingly connected to networks.In some cases, printing devices may be able to receive print data indifferent file formats for redundancy and/or to resolve print errors.

However in response to an error, a printing device may handle print datain the respective file formats in an inefficient manner. Thus, a needexists for an efficient system and method for handling print data indifferent file formats transmitted in response to a print error.

SUMMARY

In a first aspect, a method is provided. The method includes receiving,at a printing device, print data in a first file format. The print dataincludes a plurality of pages, and the plurality of pages includesrespective pages. The method includes, while the printing device isprocessing a respective page from the plurality of pages, determining anerror condition and responsively transmitting an error message andstoring an error page location based on the respective page. The methodfurther includes receiving, at the printing device, the print data in asecond file format. The method yet further includes determining aremainder portion and a discard portion of the print data in the secondfile format based on the error page location. The remainder portionincludes at least one respective remainder page. The method additionallyincludes processing the at least one respective remainder page.

In a second aspect, a method is provided. The method includes receiving,at a printing device, print data in a first file format. The print datain the first file format includes a first plurality of pages. The firstplurality of pages includes respective pages. The method also includesstoring the print data in the first file format. The method additionallyincludes, while the printing device is processing a respective page fromthe first plurality of pages, determining an error condition andresponsively transmitting an error message and storing an error pagelocation based on the respective page. The method further includesreceiving, at the printing device, the print data in a second fileformat. The print data in the second file format includes a secondplurality of pages. The method yet further includes determining aremainder portion and a discard portion of the second plurality of pagesbased on the error page location. The remainder portion includes atleast one respective remainder page. The method also includes causing anerror page to be printed from the remainder portion of the print data inthe second file format based on the error page location. The methodadditionally includes causing at least one further page to be printedfrom the print data in a first file format. The at least one furtherpage includes at least one previously unprinted page from the firstplurality of pages.

In a third aspect, a printing device is provided. The printing deviceincludes a communication interface and a controller. The controllerincludes a processor configured to execute instructions. Theinstructions include receiving, via the communication interface, printdata in a first file format. The print data includes a plurality ofpages and the plurality of pages includes respective pages. Theinstructions include, while the controller is processing a respectivepage from the plurality of pages, determining an error condition andresponsively transmitting an error message via the communicationinterface and storing an error page location based on the respectivepage. The instructions further include receiving, via the communicationinterface, the print data in a second file format. The instructions yetfurther include determining a remainder portion and a discard portion ofthe print data in the second file format based on the error pagelocation. The remainder portion includes at least one respectiveremainder page. The instructions additionally include processing the atleast one respective remainder page.

Other aspects, embodiments, and implementations will become apparent tothose of ordinary skill in the art by reading the following detaileddescription, with reference where appropriate to the accompanyingdrawings.

BRIEF DESCRIPTION OF THE FIGURES

FIG. 1A is a schematic block diagram illustrating a system, according toan example embodiment.

FIG. 1B is a schematic block diagram illustrating a system, according toan example embodiment.

FIG. 2 is a schematic block diagram illustrating a system, according toan example embodiment.

FIG. 3A is a flow diagram illustrating a method, according to an exampleembodiment.

FIG. 3B is a flow diagram illustrating a method, according to an exampleembodiment.

FIG. 3C is a flow diagram illustrating a method, according to an exampleembodiment.

DETAILED DESCRIPTION

In the following detailed description, reference is made to theaccompanying figures, which form a part hereof. In the figures, similarsymbols typically identify similar components, unless context dictatesotherwise. The illustrative embodiments described in the detaileddescription, figures, and claims are not meant to be limiting. Otherembodiments may be utilized, and other changes may be made, withoutdeparting from the scope of the subject matter presented herein. It willbe readily understood that the aspects of the present disclosure, asgenerally described herein, and illustrated in the figures, can bearranged, substituted, combined, separated, and designed in a widevariety of different configurations, all of which are explicitlycontemplated herein.

I. OVERVIEW

Printing devices may accept information about print jobs from a numberof different sources. For example, printing devices may be connected viawired or wireless means to computers, networks of computers, theInternet, and/or mobile devices. The mobile devices may include, forexample, tablet computers, smart phones, smart watches, or other typesof computing devices.

Occasionally, an error may occur while a print job in a first fileformat is being transmitted to, or processed by, the printing device.For instance, a memory error, a font error, incomplete print job error,or another type of error may occur such that the print job cannot befully processed and/or printed. In such a case, the printing device maytransmit an error message to the device that sent the print job. Inresponse, the device may resend the print job in a different fileformat.

Previously, the printing device would then print all of the pagesassociated with the print job in the second file format, even if somepages from the initial print job (sent in the first file format) wereprinted. Thus, print job errors previously led to a substantiallikelihood of wasted time, toner/ink, and paper.

Systems and methods are disclosed herein that provide more efficienthandling of print jobs that involve errors and multiple file formats. Itshould be recognized that the print data may be divided into any numberof pages, frames, slides, sections, words, or images. During processingor printing of any such divisions, an error may occur. The describedmethod and system may be applied to such situations.

As an example, a mobile device may be running an instance of a wirelessprinting client, such as AirPrint. The wireless printing client may beoperable to provide print data to a printing device. However, othermeans of providing print data to a printing device are possible. Themobile device may begin to send multiple pages of print data in a firstfile format, such as a Portable Document Format (PDF). In an exampleembodiment, while sending the print data in the first format, the mobiledevice may lose communication with the printing device. As a result, aportion of the print data in the first file format may not be completelytransmitted to the printing device. In response to receiving incompleteprint data (e.g. timing out, etc.), the printing device may transmit orotherwise communicate an error to the mobile device.

In response to determining the error condition, the printing device maystore an error page location. In the case where the print data wastransmitted in a page-by-page, serial manner, the error page locationmay include, for example, the page number at which the error occurred.The error page location may also include a line number or another way todescribe a portion of the print data otherwise unable to be processedand/or printed.

Responsive to receiving the error message, the mobile device may sendthe print data to the printing device in a second file format, such asUniversal Raster Format (URF). However, instead of processing andprinting all of the pages from the print data in a second file format,the printing device may discard pages from the print data in the secondfile format that occur before the error page location. In other words,the printing device may discard pages that may have already beenprocessed and/or printed by the printing device.

The printing device may then process and/or print the remaining,unprinted, portion of the print data in the second file format. Ifavailable, the printing device may subsequently optionally processand/or print one or more previously unprinted pages from the print datain the first file format. That is, in some cases, the printing devicemay process and/or print a portion of the print data from the secondfile format and then revert back to the print data in the first fileformat. In some embodiments, the printing device may switch back andforth between print data file formats on several occasions.

II. SYSTEM EXAMPLES

FIG. 1A is a schematic block diagram illustrating a system 100,according to an example embodiment. System 100 includes a mobile device102. Mobile device 102 may include a smart phone, a laptop, a desktopcomputer, or another type of computing device configured to provide aprint job or print data, either directly or indirectly, to a printingdevice 104. For example the mobile device 102 may provide print data ina first file format 106. The first file format may include a particulardocument format, such as PDF, .doc, .eps, .ps, or another file format.

Occasionally, the printing device 104 may determine an error conditionrelated to the transmission, processing, or printing of the print datain the first file format 106. The error condition may include anincomplete print data transmission, a memory error, corrupted printdata, or another issue that may require the printing device 104 toacquire further print data to complete the original print job. In anexample embodiment, the error condition may occur while the printingdevice 104 is processing multi-page print data. For instance, asillustrated in FIG. 1A, the error condition may occur due to incompleteprint data while the printing device 104 is processing page three of afive page document.

In an example embodiment, the printing device 104 may process and printpage 110 and page 112 from the print data in the first file format 106.However, an error may occur while processing and/or printing page 114from the print data in the first file format 106. Thus, page 114 may beincorrectly printed or not printed at all from the print data in thefirst file format 106.

In response to determining the error condition, the printing device 104may store an error page location. That is, the printing device 104 maystore the page number or another location reference related to the errorcondition. In FIG. 1A, the printing device 104 may store “Page Number 3”as the error page location within a five page document.

In response to determining the error condition, the printing device 104may also transmit an error message 108 to the mobile device 102. Theerror message 108 may include information about the error condition andinformation about the print data. For instance, in the above case whereincomplete print data caused an error with a multi-page PDF document,the error message 108 may include the particular error condition(INCOMPLETE PRINT DATA) and the particular filename, e.g.“multi_page_document.pdf”. The error message 108 may include a differentreference for the particular print data related to the multi-page PDFdocument, e.g. print job reference number, a time stamp, a filechecksum, etc. In another embodiment, the printing device 104 need notprovide details about the determined error, but may request the printdata be resent in a second file format. Other types of error messagesare possible. In some embodiments, the print data in the first fileformat 106 may be discarded upon the printing device 104 determining anerror condition.

In response to receiving the error message 108, the mobile device 102may provide the print data in a second file format 109 to the printingdevice 104. The print data in a second file format 109 may include printdata in an URF file, although other file formats are possible. The printdata in the second file format 109 may include print data related to thesame multi-page document, but in a different file format than the firstfile format.

Subsequent to receiving the print data in the second file format 109,the printing device 104 may print pages based on the saved error pagelocation. For instance, as illustrated in FIG. 1A, the printing device104 may print page 116, page 118, and page 120, which may represent pagethree through page five in the multi-page document.

FIG. 1B is a schematic block diagram illustrating a system 150,according to an example embodiment. System 150 may be similar oridentical to system 100, as described in reference to FIG. 1A, in somerespects. However, page processing and/or printing may vary from thatillustrated in FIG. 1A. Specifically, the printing device 104 may printpage 110 and page 112 normally, and then determine an error conditionwhile printing/processing page 114, as described above. The printingdevice 104 may retain the print data in the first file format 106, storean error page location, and transmit an error message to the mobiledevice 102. However, as illustrated in FIG. 1B, the printing device 104may print page 116 and discard page 118 and page 120 from the print datain the second file format 109. The printing device 104 may print page152 and page 154 from the print data in the first file format 106. Inother words, upon determining an error condition while processing and/orprinting the print data in the first format 106, the printing device 104need not print all of the remaining pages of a multi-page document fromthe print data in the second file format 109. Rather, the printingdevice 104 may revert back to processing and/or printing the previouslyunprinted pages from the print data in the first format 106 once anerror page has been printed.

FIG. 2 is a schematic block diagram illustrating a system 200, accordingto an example embodiment. The elements of system 200 may include similaror identical elements as in system 100 and system 150 as illustrated anddescribed in reference to FIGS. 1A and 1B. System 200 may include acomputing device 210 communicatively linked to a communication interface222 of a printing device 220. The printing device 220 may include acontroller 224. The controller 224 may include a computer with a memoryand at least one processor. Additionally or alternatively, thecontroller 224 may include a plurality of computers, such as a cloudcomputing system and/or a computer network.

The communication interface 222 may be configured to connect with thecomputing device 210 via a wireless or wired communication link 212. Thecommunication link 212 may be established in a variety of ways. Forexample, the communication link 212 may be established via an IEEE802.11 a, b, g, or n (Wi-Fi) network. Alternatively or additionally, thecommunication link 212 may be established via cellular data service,radio communications, near-field communications (NFC), infraredcommunications, RFID, ZIGBEE, BLUETOOTH, or another type ofcommunication link.

The at least one processor of the controller 224 may be configured toexecute instructions. The instructions include receiving, via thecommunication interface 222, print data in a first file format. Forinstance, the print data may include a multi-page document in a PDF fileformat. The print data includes a plurality of pages, each of which maybe described as a respective page. Generally, the plurality of pages mayinclude any number of pages or another type of division of the printdata.

The instructions include, while the controller 224 is processing arespective page from the plurality of pages, determining an errorcondition and responsively transmitting an error message via thecommunication interface 222 and storing an error page location based onthe respective page. Processing the respective pages may includeconverting the respective pages into a bitmap format. As describedabove, the determined error condition may include a data error, a memoryerror, a processing error, or another type of error that causes theprinting device 220 to be unable to process and/or print a respectivepage. Furthermore, the respective page related to the determined errorcondition may be stored as an error page location. In other words, theerror page location may relate to a particular page during which theerror was determined.

The instructions also include receiving, via the communication interface222, the print data in a second file format. The print data may includethe same or substantially similar multi-page document but in a differentfile format. For example, the print data in the second file format mayinclude the multi-page document being an URF file. Other file formatsare possible.

The instructions additionally include determining a remainder portionand a discard portion of the print data in the second file format basedon the error page location. The remainder portion includes at least onerespective remainder page. In other words, the controller 224 maydetermine a portion of the print data in the second format that shouldbe retained (the remainder portion), and a portion that may be discarded(the discard portion). The determination of these portions may be basedon the error page location. For example, if the error page location ispage three, the remainder portion may be determined to be pages three tofive of a five-page document. Accordingly, the discard portion may bedetermined to be pages one to two.

The instructions may further include processing the at least onerespective remainder page. In an example embodiment, after determiningthe remainder portion, the controller 224 may process and print theremaining pages from the remainder portion of the print data in thesecond file format.

Some embodiments include processing and/or printing an error page basedon the error page location within the print data in the second fileformat and then processing and/or printing any remaining unprinted pagesfrom the print data in the first file format.

In some embodiments, the discard portion may be skipped, ignored,deleted, or otherwise removed from memory. In yet other embodiments, thediscard portion may include the print data in the second file formatexcept for print data in the second file format corresponding to anerror page based on the error page location. That is, the controller maydiscard all of the print data in the second file format with theexception of the particular error page location.

In an example embodiment, while the controller is processing arespective page from the plurality of pages, the controller maydetermine a proper condition and responsively print the respective page.That is, the controller may print the pages in response to determining arespective page has been properly processed.

The controller may also be configured to execute instructions such ascausing an error page to be printed from the remainder portion of theprint data in the second file format based on the error page locationand causing at least one further page to be printed from the print datain a first file format. The at least one further page includes at leastone previously unprinted page from the plurality of pages.

III. METHOD EXAMPLES

FIGS. 3A-C illustrate methods, according to one or more embodiments. Themethods include blocks that may be carried out in an order other thanthat illustrated. Furthermore, various blocks may be added to orsubtracted from the described methods within the intended scope of thisdisclosure. The methods may correspond to steps that may be carried outusing some or all of the elements of system 100, system 150, and/orsystem 200, as illustrated and described in reference to FIGS. 1A-B andFIG. 2.

FIG. 3A is a flow diagram illustrating a method 300, according to anexample embodiment. Block 302 may include receiving print data in afirst file format and initializing a counter to N=1. The print data maybe received by a printing device, such as printing device 220 asillustrated and described in reference to FIG. 2. The print data may bereceived in a document file format such as PDF, .doc, .xls, .eps, .ps,.pcl, .jpg, .bmp, .gif, .png, .tiff, or another file format. The fileformat may include a bitmap or a vector type image. The counter may beinitialized at a different number than 1, as long as a page or locationreference is stored and/or maintained.

Block 304 includes processing page N in the first file format. As anexample, the print data may be received as a multi-page PDF document.Thus, according to block 304, the printing device may process the PDFdocument page N. Processing may include receiving print data and/orconverting the PDF print data into a printable format. Processing mayfurther include spooling the print data into a print job queue forprinting via the printing device. Other types of processing arepossible.

Block 306 includes determining whether an error condition exists. Anerror condition may be any condition which causes the printing device tobe unable to process and/or print at least a portion of the print data.For example, an error condition may arise when a communication link isdisconnected before all of the print data in the first format istransmitted by the sending device (e.g. a mobile device) and/or receivedby the printing device. Other types of error conditions may includememory errors, corrupted print data, etc. The error condition may bedetermined by a controller, such as controller 224 illustrated anddescribed in reference to FIG. 2.

Block 308 includes in the case when there is no error condition, printpage N in the first file format. In an example embodiment, page N isprinted from the PDF print data.

Block 310 includes incrementing the counter such that N=N+1. Block 312includes checking whether all pages of the document have been printed.In some embodiments, the controller may determine that N pages haveactually been printed. In other embodiments, the controller maydetermine that the page X of a document including X pages has beenprinted.

If all pages have been printed, block 314 includes ending the method.

Block 316 includes transmitting an error message to a computing devicein response to the controller determining an error condition. The errormessage may include a request to resend the print data in a second fileformat. The method 300 may include storing an error page location basedon the respective page being processed during the error, e.g. page N.Block 318 includes receiving the print data in a second file format. Insome embodiments, the second file format may include an URF file.

Block 320 includes discarding pages of the print data in the second fileformat prior to page N. Specifically, a controller may determine aremainder portion and a discard portion of the print data in the secondfile format. The determination may be made based on the error pagelocation. For example, if the error occurred on page N, the controllermay determine the discard portion of the multi-page document to be allpages occurring before page N. Block 322 includes processing andprinting pages in the second file format starting at page N andcontinuing to the end of the document. In some embodiments, the printingof a respective page may occur in response to determining a propercondition during processing of the respective page. The proper conditionmay correspond to a proper checksum, lack of error condition, etc. Afterall pages have been printed, the method may end with block 314.

FIG. 3B is a flow diagram illustrating a method 330, according to anexample embodiment. Block 332 may include receiving print data in afirst file format and initializing a page counter, N. In an exampleembodiment, printing device 220 may receive the print data in the firstformat from mobile device 210, as illustrated and described in referenceto FIG. 2. Further, the first file format may include a multi-page PDFdocument.

Block 334 includes storing the print data in the first file format. Forexample, the print data may include a multi-page document. In an exampleembodiment, the print data may be stored in a file storage associatedwith the printing device 220. For example, the printing device 220 mayinclude a memory in which the print data may be stored.

Block 336 includes processing page N in the first file format.Processing pages may include forming bitmap images for the respectivepage from the print data. Other types of processing may be performed.

Block 338 includes determining whether an error condition has occurred.As described above, an error condition may include, but should not belimited to, incomplete print data, corrupted print data, or another typeof error that causes the printing device to not be able to print allpages of the multi-page document.

If an error condition is determined, the method proceeds to block 348,which includes a determination of whether the error condition is thefirst error related to the present print data. If so, an error messagemay be transmitted as shown in block 356. The error message may includea request for the print data to be resent in a second file format.Responsively, the mobile device 210, or another sending device, mayprovide the print data in the second file format as provided in block358. The print data in the second file format may be created by themobile device 210. Alternatively or additionally, the print data in thesecond file format may be created and/or provided by another server or acloud server device. In an example embodiment, the mobile device 210 maynot support the second file format. In such a scenario, another serverdevice may be configured to support the second file format and createthe print data in the second format. The method may continue to block350.

In the case where the determination in block 348 is false (e.g. not thefirst error associated with this print data), block 350 providesdiscarding pages prior to N from the print data in the second fileformat. That is, pages from the second file format that precede theerror condition are not needed and may be ignored, deleted, or otherwisediscarded.

Block 352 includes processing page N of the print data in the secondfile format. Again, processing page N may include converting the printdata for that respective page into a bitmap image. Other forms ofprocessing are possible. After successful processing, page N may beprinted from the print data in the second format as shown in block 354.

Block 340 includes, in the case where no error condition is determined,printing page N in the first file format. Block 342 includesincrementing the page counter such that N=N+1.

Block 344 includes determining whether all pages have been printed. Ifnot, the method returns to block 336 to process page N. If all pageshave been printed, the method may end with block 346.

FIG. 3C is a flow diagram illustrating a method 360, according to anexample embodiment. Method 360 may be similar or identical in somerespects to method 330, as illustrated and described in reference toFIG. 3B. However, in the case where no error condition is determinedwhile processing page N, block 362 may include a determination as towhether print data in the second file format has previously beenreceived by the printing device. If so, block 364 includes discardingpage N from the print data in the second file format. That is, printdata in the second file format may have been previously received andstored. Due to the fact that no error was determined while processingthe print data for page N in the first file format, the correspondingprint data in the second file format is not needed. Thus, page N of thesecond file format may be discarded.

Method 360 provides optionally storing the print data in either or bothof the first file format and the second file format. As described above,method 360 may include the controller determining a discard portion anda remainder portion of the print data in the second file format. Themethod optionally provides printing an error page from the remainderportion of the print data in the second file format based on the errorpage location and printing at least one further page from the print datain the first file format. The at least one further page may include atleast one previously unprinted page from the plurality of pages.

In some embodiments, the discard portion may be determined to includeall of the print data in the second file format except for the printdata in the second file format corresponding to the error page. Asdescribed above, the error page may be based on the error page location,e.g. error page=page N.

Method 360 may further include block 366 which provides that pages priorto N be discarded in scenarios when a first error is determined in block348.

While various examples and embodiments have been disclosed, otherexamples and embodiments will be apparent to those skilled in the art.The various disclosed examples and embodiments are for purposes ofillustration and are not intended to be limiting, with the true scopeand spirit being indicated by the following claims.

What is claimed is:
 1. A method comprising: receiving, at a printingdevice, print data in a first file format, wherein the print data in thefirst file format comprises a first plurality of pages, and wherein thefirst plurality of pages comprises respective pages; storing the printdata in the first file format; while the printing device is processing arespective page from the first plurality of pages, determining an errorcondition and responsively transmitting an error message and storing anerror page location based on the respective page; receiving, at theprinting device, the print data in a second file format that differsfrom the first file format, wherein the print data in the second fileformat comprises a second plurality of pages; determining a remainderportion and a discard portion of the second plurality of pages based onthe error page location, wherein the remainder portion comprises atleast one respective remainder page that comprises the print data in thesecond file format that corresponds to an error page, and wherein thediscard portion comprises the print data in the second file format thatcorresponds to one or more pages except for the error page; causing anerror page to be printed from the remainder portion of the print data inthe second file format based on the error page location; and causing atleast one further page to be printed from the print data in the firstfile format, wherein the at least one further page comprises at leastone previously unprinted page from the first plurality of pages.
 2. Themethod of claim 1, further comprising while the printing device isprocessing a respective page from the first plurality of pages,determining a proper condition and responsively printing the respectivepage.
 3. The method of claim 1, further comprising discarding thediscard portion of the print data in the second file format.
 4. Themethod of claim 1, further comprising storing the print data in thesecond file format.
 5. The method of claim 1 wherein processing arespective page from the first plurality of pages comprises convertingthe respective pages into a bitmap format.
 6. The method of claim 1wherein the first file format comprises a portable document format(PDF).
 7. The method of claim 1 wherein the second file format comprisesa universal raster format (URF).